Sincronismi

Il sincronismo permette di ottenere degli automatismi che sono scatenati dall'arrivo di un dato da seriale. Il pulsante di stampa "Monitor di Stampa" o quello di esecuzione sequenze "Sequencer" possono essere associati ad una regola del canale seriale. Quando la regola è soddisfatta il pulsante associato è premuto automaticamente e tutte le azioni inserite nella lista di quel pulsante saranno eseguite.

 

Per associare ad un pulsante un sincronismo si flegga "Usa Lista di Azioni" nelle proprietà del pulsante. Questa opzione è presente solo nel pulsante "Monitor di stampa" e "Sequencer".

 

Quano "Usa Lista di Azioni" è fleggato è mostrata la lista delle azioni collegate al pulsante. Cioè la lista delle azioni che verrano eseguite tutte le volte che si preme il pulsante. Se la lista è vuota come in questo caso viene eseguito il frame che contiene il pulsante.

 

Configurazione Lista Azioni

Cliccando su di essa è possibile aggiungere un'azione e un sincronismo.

Stampante -1: indica che il documento non verra stampato.
Stampante -2: il documento verrà stampato sulla stampante di default di sistema.
Stampante -3: si aprirà una finestra che consentirà di selezionare la stampante su cui stampare.
Stampante N con N>0: il documento verrà stampato sulla stampante termica eNnesima della lista di stampanti installate in LabelOne.

Quantità: ha senso solo nel caso di stampa. Indica il numero di copie della stampa.

Passo: indica ogni quanti cicli viene eseguita l'azione. Se Passo=2 l'azione verrà eseguita ogni due pressioni del tasto. Nel caso di sincronismo abilitato, ogni due Eventi sincro. Il passo può anche indicare una condizione e quindi eseguire un'azione solo se è verificata una determinata condizione.

 

Lista di Azioni

La lista può essere costituita da Documenti da stampare, Frame da aprire, Sequenze da eseguire. Per aggiungere un'azione cliccare su "Aggiunge una nuova azione alla lista". Le opzioni presenti nella finestra sono in funzione del tipo di documento selezionato.

 

Esempio di Sequenza (Storico Pesate)

Continuando il nostro esempio HelloWorld, supponiamo di voler memorizzare ogni singola pesata in un database. In tale progetto abbiamo già un database dal nome "database" con una tabella dal nome "Tabella". Usiamo Manager di database e con il pulsante "Crea Nuova Tabella" aggiungiamo la tabella "Pesate".

 

Selezioniamo la tabella usiamo il tasto "Edita la Struttura..."

 

Aggiungiamo i vari campi: Peso, Tara, e DataOrario. Quest'ultimo supponiamolo in formato DD/MM/YYYY hh:mm:ss quindi useremo anche per questo 50 caratteri.

 

Realizziamo la sequenza cliccando sul pannello sequenze. Poi aggiungiamo una nuova sequenza premendo su

 

Inseriamo un nome per la sequenza che descriva il suo scopo.

 

Una sequenza può essere costituita da Azioni NoGui (cioè senza interfaccia utente) e da Azioni Gui. Le azioni no gui sono operazioni, manipolazione di stringhe, esportazione di dati in file o database, oppure condizioni "IF ELSE" cicli "FOR". Le azioni Gui sono finestre per inserimento dati manuali, finestre per selezione di date, finestre per selezione di record. In generale le sequenze vengono usate con azioni NoGui.

Appena creata la sequenza EsportaPesata, sarà inserita per default un'azione NoGui. Tale azione deve essere configurata per l'esportazione della pesata nella tabella Pesate. Il record sarà costituito da tre informazioni. DataOrario che funge anche da chiave primaria, Peso e da Tara. Cominciamo col realizzare la DataOrario.

 

Ora dobbiamo configurare il tipo di esportazione

 

Clicchiamo su Esportazione e selezionimao HSQLDB per esportare nel database creato precedentemente.

 

Selezioniamo il database con il pulsante Sfoglia

 

Scegliamo la Tabella e il Campo con il tasto configura.

 

Dato che si tratta dell'orario l'ho esportiamo nel campo DataOrario di Pesate.

 

La modalità di esportazione va bene quella di default "Sostituisci", mentre per quanto rigurda il record in cui esportare, usiamo una condizione DataOrario (uguale) var(0)

 

La condizione per la scelta del record è necessaria per evitare di creare due record con la stessa chiave primaria.

Quindi prima andiamo a verivicare se il record già esiste. Se il record esiste "Sostituiamo" il valore Peso con quello attuale, se il record non esiste creiamo un nuovo record. La condizione usa come tipo di confronto "Uguale" e non "=". questo perchè "=" si intende fra valori numerici, mentre "Uguale" si intende fra Stringhe. Il Valore "var(0)" indica il valore che assume la variabile di identificativo id=0. Nel nostro caso quindi var(0) sarà l'attuale data ora nel formato dd/MM/yyyy hh:mm:ss.

In questo modo abbiamo configurato l'esportazione della chiave primaria e abbiamo creato il nuovo record. Aggiungiamo un commento per descrivere questa azione.

 

Dobbiamo aggiungere una nuova azione per esportare il peso. Per vare prima copiamo l-azione create precedentemente e incolliamola sotto.

 

Selezioniamo la nuova azione per configurarla

 

Con questa azione andremo a leggere il peso dal file Peso.txt.

 

Poi esportiamo il valore nel database, ma questa volta nel campo Peso. Usiamo sempre la stessa condizione per individuare il record.

 

Analogamente per la tara. Aggiungiamo un'altra azione copiando l'azione precedente facendo uso del tasto destro del mouse sull'azione da copiare.

 

Incolliamo sempre facendo uso del taso destro sull'azione selezionata. L'azione così creata è configurata come quella precedente. Basterà cambiare il nome del file da cui prelevare il valore Tara.txt.

 

Cambiare il campo del database in cui esportare.

 

Questa è la lista delle azioni presente nella sequenza EsportaPesata.

 

Aggiungere la sequenza nella lista di azioni

Non ci resta che aggiungere la sequenza nella lista di azioni del pulsante Stampa. Clicchiamo sul pulsante "Stampa" del frame "Peso.spj" e configuriamo la lista di azioni inserendo la sequenza che esporta il peso.

 

La finestra di configurazione della lista di azioni, usa il tasto sfoglia per cercare il documento nella cartella Documenti. Tale cartella è corretta solo se si intende inserire un'etichetta da stampare, ma se si sta cercando una sequenza bisogna cambiare cartella andando in Sequences. Il termine "Stampa" nel caso della sequenza va inteso come Esegui.

 

Bisogna ancora associare il pulsante ad una regola del canale seriale. In questo modo quando arriva il peso stampiamo automaticamente.